// 专门用来处理前端页面权限的
import { constantRoutes, asyncRoutes } from '@/router'
export default {
  namespaced: true,
  state: {
    // 提供侧边栏进行展示
    routes: constantRoutes
  },
  getters: {},
  mutations: {
    setRoutes(state, data) {
      state.routes = [...constantRoutes, ...data] // 静态+动态
    }
  },
  actions: {
    // 根据后端返回的权限标识和本地完整的动态路由进行筛选，选出当前用户的动态路由
    filterRoutes(context, data) {
      // console.log(data)
      const userAsyncRoutes = []
      asyncRoutes.forEach((item) => {
        // 判断item.name是否包含在该用户的权限标识中 如果在就把这个路由信息放入新数组
        if (data.includes(item.name)) {
          userAsyncRoutes.push(item)
        }
      })
      // 调用 setRoutes 存储路由信息
      context.commit('setRoutes', userAsyncRoutes)
      // 解决页面刷新404bug 将404页面放在路由配置最后一个
      userAsyncRoutes.push({ path: '*', redirect: '/404', hidden: true })
      // console.log(userAsyncRoutes) // 筛选出当前用户的动态路由
      return userAsyncRoutes
    }
  }
}
